﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace A81二位数组旋转
{
    //对二维数组操作的工具类
    static class DoubleArrayHelper
    {
        //控制台显示二维数组
        public static void ConsoleShow(int[,] array ) 
        {
            for (int r = 0; r < array.GetLength(0); r++)//r表示第几行
            {
                for (int c = 0; c < array.GetLength(1); c++)//c表示第r行的第几列
                {
                    Console.Write(array[r,c]+"\t");
                }
                Console.WriteLine();//换行
            }
        }


        //旋转二维数组
        public static void Roate90(ref int[,] array) 
        {
            //创建新数组
            int[,] newArray = new int[array.GetLength(1), array.GetLength(0)];

            int c1 = newArray.GetLength(1)-1;//新数组的列从最大开始
            for (int r = 0; r < array.GetLength(0); r++)//r表示第几行
            {
                int r1 = 0;//r1新数组当前列的行,从0开始
                for (int c = 0; c < array.GetLength(1); c++)//c表示第r行的第几列
                {
                    newArray[r1,c1] = array[r, c];
                    r1++;
                }
                c1--;
            }
            array = newArray;
        }
    }
}
